package com.dg.river.core.action;

import androidx.annotation.DrawableRes;

import com.dg.river.R;
import com.dg.river.core.view.StatusLayout;

/**
 * @作者：Hututu
 * @时间：2023/4/24 16:32
 * @描述：内容描述
 * @修改：修改内容
 * @Version:1.0
 */
public interface StatusAction {

    StatusLayout getStatusLayout();

    /**
     * 显示占位图
     */
    default boolean showPlaceholder() {
        return showPlaceholder("暂无内容", R.drawable.icon_empty_ic_2);
    }

    /**
     * 显示占位图
     *
     * @param text
     * @param icon
     */
    default boolean showPlaceholder(String text, @DrawableRes int icon) {
        StatusLayout statusLayout = getStatusLayout();
        if (statusLayout != null) {
            statusLayout.init();
            statusLayout.setShowType(StatusLayout.ShowType.PLACEHOLDER);
            statusLayout.setText(text);
            statusLayout.setIcon(icon);
            return true;
        } else {
            return false;
        }
    }

    /**
     * 显示加载图
     *
     * @return
     */
    default boolean showLoading() {
        StatusLayout statusLayout = getStatusLayout();
        if (statusLayout != null) {
            statusLayout.init();
            statusLayout.setShowType(StatusLayout.ShowType.LOADING);
            return true;
        } else {
            return false;
        }
    }

    /**
     * 显示网络异常图
     *
     * @return
     */
    default boolean showNetworkError(StatusLayout.OnRetryListener onRetryListener) {
        StatusLayout statusLayout = getStatusLayout();
        if (statusLayout != null) {
            statusLayout.init();
            statusLayout.setShowType(StatusLayout.ShowType.NET_WORK_ERROR);
            statusLayout.setRetryListener(onRetryListener);
            return true;
        } else {
            return false;
        }
    }
}
